home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Misc / SciCalc1.1 / Source / Calculator.h < prev    next >
Text File  |  1994-04-07  |  4KB  |  105 lines

  1. /***(Calculator.h)*************************************************************
  2. *H* Input processing logic for Calculator                     V0.0, 09-FEB-91 *
  3. *C* V0.0 09-FEB-91 Initial version                                      --MDM *
  4. ******************************************************************************/
  5.  
  6. #import <objc/Object.h>
  7. #import "OperatorStack.h"   /* Calculator OperatorStack Class Definition */
  8. #import "ValueStack.h"        /* Calculator ValueStack   Class Definition */
  9.  
  10.  
  11. @interface Calculator:Object
  12. {
  13. long            OVcalcAcceptMode;      /* What kinds of input are acceptable */
  14. int             OVcalcBase;            /* Current number base of calculator */
  15. id              OVcalcBitwiseMtx;      /*(Outlet)Bitwise operator button matrix object */
  16. int             OVcalcCEIndex;           /* Display string Clear Entry index */
  17. id            OVcalcDigitMtx;        /*(Outlet)Main digit button matrix object */
  18. id            OVcalcDigitPBtn;       /*(Outlet)Decimal point push button */
  19. id            OVcalcDisplay;           /*(Outlet)Calculator's simulated LCD display */
  20. char        OVcalcDspStr[256];     /* string of values & operators to be displayed */
  21. BOOL          OVcalcEqualized;       /* Has expression just been equaled */
  22. BOOL        OVcalcFrozen;           /* flag to freeze calculator on error */
  23. BOOL        OVcalcFunctionMode;    /* Current method of function operation */
  24. BOOL        OVcalcHyperbolic;      /* Interpret Trig funcs in Hyperbolic mode */
  25. BOOL        OVcalcInverse;         /* Interpret Trig funcs in Inverse mode */
  26. int             OVcalcMaxDigits;       /* Maximum allowable digits in operand */
  27. char        OVcalcMemDspStr[80];   /* Formated value in memory */
  28. id              OVcalcMemCellLabel;    /*(Outlet) Active memory label */
  29. int            OVcalcMemoryCell;      /* Index of currently active memory cell */
  30. id            OVcalcMemoryDsp;       /*(Outlet)Calculators memory LCD display */
  31. double            OVcalcMemoryVal[26];   /* Binary value in memory cell */
  32. int             OVcalcMetric;           /* Current trignometric unit metric */
  33. int             OVcalcParenBalance;    /* Current number of open parenthesis */
  34. id              OVcalcPrecsnDsp;       /*(Outlet)Text field for displaying current precision */
  35. id              OVcalcPrecsnSldr;      /*(Outlet)Slider for setting current precision */
  36. int             OVcalcPrecsnVal;       /* Current output precision value */
  37. int             OVcalcUnit;            /* Bytes per operand value in Bin/Hex/Oct */
  38. id              OVcalcUnitMatrix;      /*(Outlet)Unit radio button matrix id */
  39. char        OVcalcValStr[80];      /* string of digits of current input value */
  40. id            OVcalcWindow;            /*(Outlet)Main window in which calculator is drawn */
  41. OperatorStack  *OVopStack;             /* stack of unprocessed operators */
  42. ValueStack     *OVvalStack;            /* stack of unprocessed values */
  43. int        OVtag;               /* to impersonate a Control object */
  44. }
  45.  
  46. + KeyBoardEquivalent:(NXEvent *)event;
  47. + PasteExpression:(char*)expString Length:(int)expLength;
  48.  
  49. - init;
  50. - AdjustPrecision;
  51. - AllClear:sender;
  52. - BitwiseAnd:sender;
  53. - BitwiseLsh:sender;
  54. - BitwiseNot:sender;
  55. - BitwiseOr:sender;
  56. - BitwiseRsh:sender;
  57. - BitwiseXor:sender;
  58. - ChangeBase:sender;
  59. - ChangeFunctionMode:sender;
  60. - ChangeHyperbolic:sender;
  61. - ChangeInverse:sender;
  62. - ChangeMetric:sender;
  63. - ChangePrecision:sender;
  64. - ChangeSign:sender;
  65. - ChangeUnit:sender;
  66. - ClearEntry:sender;
  67. - CloseParen:sender;
  68. - Cosine:sender;
  69. - Digit:sender;
  70. - Divide:sender;
  71. - EnterPi:sender;
  72. - Equals:sender;
  73. - Exponential:sender;
  74. - Factorial:sender;
  75. - FormatValue:(double)operand :(char*)fmtstr;
  76. - Integer:sender;
  77. - MemoryClear:sender;
  78. - MemoryRecall:sender;
  79. - MemorySelect:sender;
  80. - MemoryStore:sender;
  81. - Minus:sender;
  82. - Modify:sender;
  83. - Multiply:sender;
  84. - OpenParen:sender;
  85. - Plus:sender;
  86. - ProcessDigit:(char) dgtchr;
  87. - ProcessFunction: (int) opcode: (char *) symbol;
  88. - (double) ProcessOpcode :(int)opcode :(double)operand1 :(double)operand2;
  89. - ProcessOperator: (int) opcode: (char *) symbol;
  90. - Reciprocal:sender;
  91. - ReduceExpression: (int) curopr;
  92. - ScanValue:(char*)fmtstr :(double*) operand;
  93. - Sine:sender;
  94. - SyntaxError: (int) opcode: (char *) symbol;
  95. - Tangent:sender;
  96. - TenToTheX:sender;
  97. - ValueEntered;
  98. - XSquared:sender;
  99. - XToTheY:sender;
  100. - setTag:(int)anInt;
  101. - (int) selectedTag;
  102.  
  103. @end
  104.  
  105.